It is well known that the transmission of data in digital form provides for increased signal to noise ratios and increased information capacity along the transmission channel. There is however a continuing desire to further increase channel capacity by compressing digital signals to an ever greater extent. In relation to audio signals, two basic compression principles are conventionally applied. The first of these involves removing the statistical or deterministic redundancies in the source signal whilst the second involves suppressing or eliminating from the source signal elements which are redundant in so far as human perception is concerned. Recently, the latter principle has become predominant in high quality audio applications and typically involves the separation of an audio signal into frequency components (sometimes called `sub-bands`), each of which is analysed and quantized with a quantisation accuracy determined to remove data irrelevancy (to the listener). The ISO (International Standards Organisation) MPEG (Moving Pictures Expert Group) audio coding standard and other audio coding standards employ and further define this principle. However, MPEG (and other standards) also employs a technique known as `adaptive prediction` to produce a further reduction in data rate.
A particular form of adaptive prediction is known as `backward adaptive lattice prediction`. Fuchs et al, `Improving MPEG Audio Coding by Backward Adaptive Linear Stereo Prediction`, AES Convention, New York, Preprint 4086 October 1995, describes one such backward adaptive lattice prediction algorithm. For each spectral value (the `current` value) of each frequency component, backward adaptive lattice prediction generates a set of prediction coefficients in the coder from the previously calculated spectral values of that component (via the intermediate calculation of quantized spectral values). These coefficients are then used to predict the value of the current spectral value. The error between the current spectral value and the predicted spectral value is determined and it is this error value (after quantisation) which is transmitted to the receiver. It will be appreciated that at any given time, the current prediction coefficients have effectively been derived from all previously received sample values. At the receiver, the coefficients are similarly calculated and reconstructed spectral values obtained by combining the predicted spectral values with the received error values.
In certain algorithms employing backward adaptive prediction, it is often the case that a measure of the compression achieved is determined during the compression process and the error values sent only if positive compression gain is achieved. If not, then the actual quantized frequency component signals are transmitted instead.
The new MPEG-2 AAC standard employs psychoacoustic modeling and backward adaptive linear prediction with 1024 frequency components. It is envisaged that the new MPEG-4 VM standard will have similar requirements. However, such a large number of frequency components results in a large computational overhead due to the complexity of the prediction algorithm and also requires the availability of large areas of memory to store the calculated coefficients. Additionally, with backward adaptive lattice prediction, even when the predictors are turned `off` (e.g. when no compression advantage can be obtained by transmitting the error values), the decoder must continue to determine the coefficients so that the predictors can be turned `on` again when required without any temporary degradation in performance. This provides an additional computation overhead.
It is an object of the present invention to overcome or at least mitigate one or more of the above disadvantages.
This object is achieved by utilising a backward adaptive prediction algorithm which acts upon a relatively large number of frequency components of an audio signal to be coded and which calculates prediction coefficients for a component from a predetermined number of previously received sample values of that component.